package cn.com.headfree.drafts.dao;

import java.util.List;

import cn.com.headfree.entity.*;
import com.gta.edu.sdk.common.dto.Page;

import cn.com.headfree.entity.isc.User;
import cn.com.headfree.vo.CommonVo;
import cn.com.headfree.vo.EachTypeDetailVo;
import cn.com.headfree.vo.IntegrityAnalysisVo;
import cn.com.headfree.vo.PersonalLastThreeYearHonorVo;
import cn.com.headfree.vo.StringVo;
import cn.com.headfree.vo.SysDictionaryInfoVo;
import cn.com.headfree.vo.complex.TAcadeAchiveInfoVo;
import cn.com.headfree.vo.complex.TPatentInfoVo;
import cn.com.headfree.vo.complex.TProjAchieveInfoVo;
import cn.com.headfree.vo.complex.TStandInfoVo;
import cn.com.headfree.vo.complex.TTecInnovInfoVo;
import cn.com.headfree.vo.complex.TTecManInnovVo;
import cn.com.headfree.vo.drafts.DraftsListVo;

public interface IDraftsDao {

	void addBaseInfo(TEmpBaseInfo baseInfo);

	TEmpBaseInfo getBaseInfoById(String id);

	TEmpBaseInfo getBaseInfoByErpNo(String erpNo);



	void addYearEffect(TYearEffectInfo yearEffectInfo);

	TYearEffectInfo getYearEffectById(String id);

	List<TYearEffectInfo> getYearEffectByErpNo(String erpNo);

	void findPageYearEffectByCondi(Page<TYearEffectInfo> page,TYearEffectInfo tYearEffectInfo);



	void addEducateInfo(TEducateInfo tEducateInfo);

	TEducateInfo getEducateInfoById(String id);

	List<TEducateInfo> getEducateInfoByErpNo(String erpNo,String isCountEduc);

	void findPageEducateInfoByCondi(Page<TEducateInfo> page,TEducateInfo tEducateInfo);



	void addProTecInfo(TProTecInfo tProTecInfo);

	TProTecInfo getProTecInfoById(String id);

	List<TProTecInfo> getProTecInfoByErpNo(String erpNo);

	void findPageProTecInfoByCondi(Page<TProTecInfo> page,TProTecInfo tProTecInfo);



	void addSkillLevelInfo(TSkillLevelInfo tSkillLevelInfo);

	TSkillLevelInfo getTSkillLevelInfoById(String id);

	List<TSkillLevelInfo> getSkillLevelInfoByErpNo(String erpNo);

	void findPageSkillLevelInfoByCondi(Page<TSkillLevelInfo> page,TSkillLevelInfo tSkillLevelInfo);



	void addExpertTitleInfo(TExpertTitleInfo tExpertTitleInfo);

	TExpertTitleInfo getExpertTitleInfoById(String id);

	List<TExpertTitleInfo> getExpertTitleInfoByErpNo(String erpNo);

	void findPageExpertTitleInfoByCondi(Page<TExpertTitleInfo> page,TExpertTitleInfo tExpertTitleInfo);



	void addAcadeAchiveInfo(TAcadeAchiveInfo tAcadeAchiveInfo);

	TAcadeAchiveInfoVo getAcadeAchiveInfoById(String id);

	List<TAcadeAchiveInfoVo> getAcadeAchiveInfoByErpNo(String erpNo);

	void findPageAcadeAchiveInfoByCondi(Page<TAcadeAchiveInfoVo> page, TAcadeAchiveInfo tAcadeAchiveInfo);



	void addStandInfo(TStandInfo tStandInfo);

	TStandInfoVo getStandInfoById(String id);

	List<TStandInfoVo> getStandInfoByErpNo(String erpNo);

	void findPageStandInfoByCondi(Page<TStandInfoVo> page, TStandInfo tStandInfo);



	void addPatentInfo(TPatentInfo tPatentInfo);

	TPatentInfoVo getPatentInfoById(String id);

	List<TPatentInfoVo> getPatentInfoByErpNo(String erpNo);

	void findPagePatentInfoByCondi(Page<TPatentInfoVo> page, TPatentInfo tPatentInfo);



	void addTecInnovInfo(TTecInnovInfo tTecInnovInfo);

	TTecInnovInfoVo getTecInnovInfoById(String id);

	List<TTecInnovInfoVo> getTecInnovInfoByErpNo(String erpNo);

	void findPageTecInnovInfoByCondi(Page<TTecInnovInfoVo> page, TTecInnovInfo tTecInnovInfo);



	void addContestInfo(TContestInfo tContestInfo);

	TContestInfo getContestInfoById(String id);

	List<TContestInfo> getContestInfoByErpNo(String erpNo);

	void findPageContestInfoByCondi(Page<TContestInfo> page,TContestInfo tContestInfo);



	void addTecManInnov(TTecManInnov tTecManInnov);

	TTecManInnovVo getTecManInnovById(String id);

	List<TTecManInnovVo> getTecManInnovByErpNo(String erpNo);

	void findPageTecManInnovByCondi(Page<TTecManInnovVo> page, TTecManInnov tTecManInnov);



	void addHonorInfo(THonorInfo tHonorInfo);

	THonorInfo getHonorInfoById(String id);

	List<THonorInfo> getHonnorInfoByErpNo(String erpNo);

	void findPageHonorInfoByCondi(Page<THonorInfo> page,THonorInfo tHonorInfo);



	void addWorkExpInfo(TWorkExpInfo tWorkExpInfo);

	TWorkExpInfo getWorkExpInfoById(String id);

	List<TWorkExpInfo> getWorkExpInfoByErpNo(String erpNo);

	void findPageWorkExpInfoByCondi(Page<TWorkExpInfo> page,TWorkExpInfo tWorkExpInfo);



	void addContiStudyInfo(TContiStudyInfo tContiStudyInfo);

	TContiStudyInfo getContiStudyInfoById(String id);

	List<TContiStudyInfo> getContiStudyInfoByErpNo(String erpNo);

	void findPageContiStudyInfoByCondi(Page<TContiStudyInfo> page,TContiStudyInfo tContiStudyInfo);



	void addSdtTutorPrentInfo(TSdtTutorPrentInfo tSdtTutorPrentInfo);

	//徒弟信息添加
	void addSdtPrentInfo(TSdtPrentInfo tSdtPrentInfo);

	//徒弟所获奖项添加
	void addSdtAwardInfo(TSdtAward tSdtAward);

	//参与人员信息添加
	void addPartRank(TPartRank tPartRank);

	TSdtTutorPrentInfo getSdtTutorPrentInfoById(String id);

	List<TSdtTutorPrentInfo> getSdtTutorPrentInfoByErpNo(String erpNo);

	//师带徒根据徒弟表ID获取徒弟所获奖项
	List<TSdtAward> getSdtAwardBySdtTdId(String sdtTdId);

	void findPageSdtTutorPrentInfoByCondi(Page<TSdtTutorPrentInfo> page,TSdtTutorPrentInfo tSdtTutorPrentInfo);

	void addProjAchieveInfo(TProjAchieveInfo tProjAchieveInfo);

	TProjAchieveInfoVo getProjAchieveInfoById(String id);

	List<TProjAchieveInfoVo> getProjAchieveInfoByErpNo(String erpNo);

	void findPageProjAchieveInfoByCondi(Page<TProjAchieveInfoVo> page,TProjAchieveInfo tProjAchieveInfo);



	List<TMouldInfo> getMouldInfoList(TMouldInfo tMouldInfo);

	void getEachTypeDetailList(EachTypeDetailVo detail, Page<EachTypeDetailVo> page);

	List<SysDictionaryInfoVo> getAttendanceUserTypeByValue(String value);

	List<TPartRank> getTPartRankByMids(List<String> mainIds, String type);

	List<TSdtPrentInfo> getTSdtPrentInfoByMids(List<String> mainIds);

	List<TSdtAward> getTSdtAwardByMids(List<String> mainIds);

	//根据师带徒ID获取徒弟信息
	List<TSdtPrentInfo> getTSdtPrentInfoListById(String sdtId);

	/****************************************通过数据id判断当前数据是否存在待审核的副本数据********************************/

	List<TYearEffectInfo> getReadyYearEffectById(String id);

	List<TEducateInfo> getReadyEducateInfoById(String id);

	List<TProTecInfo> getReadyProTecInfoById(String id);

	List<TSkillLevelInfo> getReadySkillLevelInfoById(String id);

	List<TExpertTitleInfo> getReadyExpertTitleInfoById(String id);

	List<TAcadeAchiveInfo> getReadyAcadeAchiveInfoById(String id);

	List<TStandInfo> getReadyStandInfoById(String id);

	List<TPatentInfo> getReadyPatentInfoById(String id);

	List<TTecInnovInfo> getReadyTecInnovInfoById(String id);

	List<TContestInfo> getReadyContestInfoById(String id);

	List<TTecManInnov> getReadyTecManInnovById(String id);

	List<THonorInfo> getReadyHonorInfoById(String id);

	List<TWorkExpInfo> getReadyWorkExpInfoById(String id);

	List<TContiStudyInfo> getReadyContiStudyInfoById(String id);

	List<TSdtTutorPrentInfo> getReadySdtTutorPrentInfoById(String id);

	List<TProjAchieveInfo> getReadyProjAchieveInfoById(String id);


	/**
	 * 根据erpNo删除基本信息
	 */
	void deleteEmpBaseInfoByErpNo(String erpNo);
	
	/**
	 * 添加挂职轮岗信息
	 * @author yangwang
	 * @param tRotationInfo
	 *  */
	void addRotationInfo(TRotationInfo tRotationInfo);
	/**
	 * 根据id获取挂职轮岗信息
	 * @author yangwang
	 * @param id
	 * @return TRotationInfo
	 *  */
	TRotationInfo getRotationInfoById(String id);
	/**
	 * 获取挂职轮岗列表信息
	 * @author yangwang
	 * @param tRotationInfo
	 * @return List<TRotationInfo>
	 *  */
	List<TRotationInfo> getListRotationInfoByCondi(TRotationInfo tRotationInfo);
	/**
	 * 获取挂职轮岗分页信息
	 * @author yangwang
	 * @param page
	 * @param tRotationInfo
	 *  */
	void findPageRotationInfoByCondi(Page<TRotationInfo> page,TRotationInfo tRotationInfo);
	/**
	 * 获取挂职轮岗待审核信息
	 * @author yangwang
	 * @param id
	 * @return List<TRotationInfo>
	 *  */
	List<TRotationInfo> getReadyRotationInfoById(String id);

	int updateEducateInfoYes(TEducateInfo educateInfo, User user);

	int updateContiStudyInfo(TContiStudyInfo contiStudyInfo);

	int updateTProTecInfo(TProTecInfo proTecInfo);

	int updateTSkillLevelInfo(TSkillLevelInfo skillLevelInfo);

	int updateTExpertTitleInfo(TExpertTitleInfo tExpertTitleInfo);

	int updateTAcadeAchiveInfo(TAcadeAchiveInfo tAcadeAchiveInfo);

	int updateTStandInfo(TStandInfo tStandInfo);

	int updateTPatentInfo(TPatentInfo tPatentInfo);

	int updateTTecInnovInfo(TTecInnovInfo tTecInnovInfo);

	int updateTContestInfo(TContestInfo tContestInfo);

	int updateTTecManInnov(TTecManInnov tTecManInnov);

	int updateTHonorInfo(THonorInfo tHonorInfo);

	int updateTProjAchieveInfo(TProjAchieveInfo tProjAchieveInfo);

	int updateTSdtTutorPrentInfo(TSdtTutorPrentInfo tSdtTutorPrentInfo);

	void deleteTSdtAwardBySdtTdId(String id);

	void deleteTSdtPrentInfoByCondition(String orgId, String id);

	int updateTWorkExpInfo(TWorkExpInfo tWorkExpInfo);

	int updateTRotationInfo(TRotationInfo tRotationInfo);

	void deleteMes(String businessId, String tabName);

	void deletePartRankData(String businessId);

	IntegrityAnalysisVo integrityAnalysisByTabNameAndErpNo(String tabName, String fax);

	IntegrityAnalysisVo integrityAnalysisByTypeAndErpNo(int itemType, String fax,String tabName);

	//参与人员
    void deleteTPartRankByCondition(String orgId, String itemId);

    void addDraftsList(DraftsListVo draftsList);

	void getDraftsListPage(Page<DraftsListVo> page,String erpNo);

	void deleteDraftsListByBusinessId(String businessId);

	IntegrityAnalysisVo getAllDraftsTypeByTypeAndErpNo(int itemType, String erpNo, String string);

	IntegrityAnalysisVo getAllDraftsTypeByTabNameAndErpNo(String string, String erpNo);

	PersonalLastThreeYearHonorVo getPersonalLastThreeYearHonor(int itemType, String erpNo, String tabName,
			int yearValue, String conditionValue);

	PersonalLastThreeYearHonorVo getPersonalLastThreeYearHonorByTypeName(String tabName, String erpNo, int yearValue,
			String conditionValue);

	CommonVo getGrowthTreeJndjByErpNo(String erpNo);

	CommonVo getGrowthTreeZjrcchByErpNo(String erpNo);

	CommonVo getGrowthTreeZcByErpNo(String erpNo);

	List<CommonVo> getGrowthTreeZjrcchsByErpNo(String erpNo);

	List<CommonVo> getGrowthTreeZyzjByErpNo(String erpNo);

	List<CommonVo> getGrowthTreeZwByErpNo(String erpNo);

	void addGrowthPlan(TGrowthPlan tGrowthPlan, User user);

	void getPersonalPageGrowthPlanByErpNo(Page<TGrowthPlan> page, String erpNo);

	TGrowthPlan getGrowthPlanById(String id);

	void updateGrowthPlan(TGrowthPlan tGrowthPlan, User user);

	void addEmployeeMobility(TEmployeeMobility employeeMobility,User user);

    void findPageEmployeeMobilityByCondi(Page<TEmployeeMobility> page, TEmployeeMobility employeeMobility);

	TEmployeeMobility getEmployeeMobilityById(String id);

	void updateEmployeeMobility(TEmployeeMobility employeeMobility);

	/**
	 * 获取技术标准信息
	 * @author pengmengzhi
	 * @param tecStandardInfo
	 * @return List<TRotationInfo>
	 *  */
	void findPageTecStandardInfoByCondi(Page<TTecStandardInfo> page, TTecStandardInfo tecStandardInfo);

	void addTecStandardInfo(TTecStandardInfo tecStandardInfo);

	TTecStandardInfo getTecStandardInfoById(String id);

	int updateTecStandardInfo(TTecStandardInfo tecStandardInfo);

}
